package com.swgk.core.common.utils;

import android.app.Application;
import android.content.Context;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.startup.Initializer;

import com.alibaba.android.arouter.launcher.ARouter;
import com.swgk.core.BuildConfig;
import com.swgk.core.util.MLog;


import java.util.ArrayList;
import java.util.List;

/**
 * @author: 杨畔
 * @date: 2021/2/24 09:35
 * @Description: 启动器，用于初始化三方库
 */
public class CommonInitializer implements Initializer<Object> {
    private final String TAG = CommonInitializer.class.getSimpleName();

    @NonNull
    @Override
    public Object create(@NonNull Context context) {
        init((Application) context);
        return null;
    }

    @NonNull
    @Override
    public List<Class<? extends Initializer<?>>> dependencies() {
        return new ArrayList<>();
    }

    /**
     * 初始化
     */
    private void init(Application application) {
        Log.e(TAG, "CommonInitializer is init");
        //初始化数据存储
//        MMKV.initialize(application);
        //初始化路由，这两行必须写在init之前，否则这些配置在init过程中将无效
        if (MLog.DEBUG_LOG) {
            // 打印日志
            ARouter.openLog();
            // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
            ARouter.openDebug();
            ARouter.printStackTrace();// 打印日志的时候打印线程堆栈
        }
        ARouter.init(application);
    }
}
